Contemporaneously sharing resources targeted by a library

ABSTRACT

Computer-readable media, computerized methods, and computer systems for acting on properties of multiple resources, which span disparate locations within a network, upon detecting an intuitive user-initiated operation are provided. Initially, a library is provided that includes a framework for contemporaneously accessing a collection of items within a scope thereof. Upon launching the library, representations of the scoped items are surfaced at a UI display. When the user-initiated operation is applied at one of the surfaced representations, properties of each of the scoped items are automatically manipulated. A library-configuration state, which reflects how the items are affected upon manipulating the properties thereof, may be updated upon implementing the manipulation. Accordingly, if the scope of the library is subsequently extended to encompass another item outside the original collection of items, the properties of this new item are automatically manipulated to align with the library-configuration state.

CROSS-REFERENCE TO RELATED APPLICATIONS

Not applicable.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

BACKGROUND

Generally, individual resources are established and stored in separatelocations in order to organize information based on projects, to applydiffering levels of security to various folders/files, and the like.Various techniques exist that enable a user to share the individualresources (e.g., files, folders, network paths, and the like) with oneor more other users, such as granting another user permission to accessor edit a document. However, these current techniques require the userattempting to share the individual files or the individual folders toseparately locate each of the individual files/folders and manipulatethe properties thereof to reflect the user's intent to share. Forinstance, the user must recursively access each location at which theindividual files/folders are stored, traverse a directory within eachaccessed location to arrive upon an object linked to an individual file,and act upon the properties of that file. As such, this technique failsto offer a convenient vehicle for collectively sharing two or more filesconcurrently, and presents a tedious and time-consuming task for userswishing to share multiple files at a variety of locations (e.g., sharingexchanging business information on a plurality of servers with businesspartners).

Accordingly, employing a procedure to that allows a user to collectivelyoperate on multiple resources, which span disparate locations, in acontemporaneous manner would uniquely streamline the management of auser's data, and, in particular, would enhance the user's experiencewhen sharing that information with other users.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Embodiments of the present invention generally relate tocomputer-readable media, computerized methods, and computer systems foracting on properties of multiple resources that span disparate locationswithin a network upon providing an intuitive user-initiated operation atan item. Initially, a library may be provided that encompasses acollection of items which are mapped thereto. Accordingly, the libraryembodies a framework for allowing a user to contemporaneously access aplurality of items, or resources, which are stored at various locationswithin a scope of the library, upon launching the library. By way ofexample, the various locations traverse disparate devices, portions ofhardware, and/or platforms within a network. Upon launching the library,representations of the scoped resources are surfaced at a UI display. Inembodiments, the representations may be rendered as a collective view ina hierarchical format, that is intuitively navigable and searchable foran individual resource.

When a user-initiated operation is applied at one of the surfacedrepresentations, the properties of one or more scoped resources arecontemporaneously manipulated in accordance with the user-initiatedoperation. A library-configuration state, which reflects effects to theresources upon manipulating the properties thereof, may be updated uponimplementing the manipulation. Accordingly, if the scope of the libraryis subsequently extended to encompass a subject resource outside thelibrary's scope, the properties of the subject resource areautomatically manipulated to correspond with the library-configurationstate. A message that notifies the user of a successful manipulation maybe rendered at the UI display. Or, a communication that alerts usersaffected by the manipulation may be published at a network.

In an exemplary instance, let there be a musician that has recorded andsaved a plurality of digital audio files to various locations includinga local storage and a CD drive on a personal computer, a remote serveravailable on the Internet, and another computing device available via ahome intranet. These files residing on one or more of the variouslocations can be assigned to a particular library, thereby providing themusician concurrent access to this collection of files upon launchingthe library. If the musician decides to share the files as a collection,a single-click operation may be applied to a representation of one ofthe files or to the library itself to initiate an adjustment ofinteractive rights to the collection. In instances, a group of fileswithin the collection may be selected for sharing, and/or specific usersmay be selected as sharees when adjusting the interactive rights. Uponcompleting the adjustment, a message may be sent to alert the shareesthat the digital audio files are shared with them, while a message mayappear to the musician providing notice that the files were successfullyshared.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described in detail below with reference to theattached drawing figures, wherein:

FIG. 1 is a block diagram of an exemplary computing environment suitablefor use in implementing embodiments of the present invention;

FIG. 2 is a schematic diagram of an exemplary system architecturesuitable for use in implementing embodiments of the present invention,in accordance with an embodiment of the present invention;

FIG. 3 is a flow diagram illustrating an overall method forautomatically manipulating properties of resources residing at one ormore locations targeted by a library, in accordance with an embodimentof the present invention;

FIG. 4 is a flow diagram illustrating an overall method forcontemporaneously adjusting interactive rights of one or more resources,in accordance with an embodiment of the present invention;

FIGS. 5-10 are illustrative screen displays of exemplary user interfacesfor accessing a library and surfacing a representation of the collectionof items within the library, in accordance with an embodiment of thepresent invention.

DETAILED DESCRIPTION

The subject matter of the present invention is described withspecificity herein to meet statutory requirements. However, thedescription itself is not intended to limit the scope of this patent.Rather, the inventors have contemplated that the claimed subject mattermight also be embodied in other ways, to include different steps orcombinations of steps similar to the ones described in this document, inconjunction with other present or future technologies. Moreover,although the terms “step” and/or “block” may be used herein to connotedifferent elements of methods employed, the terms should not beinterpreted as implying any particular order among or between varioussteps herein disclosed unless and except when the order of individualsteps is explicitly described.

Accordingly, in one embodiment, the present invention relates tocomputer-executable instructions, embodied on one or morecomputer-readable media, that perform a method for automaticallymanipulating properties of resources residing at one or more locationstargeted by a library. As used herein, the term “resources” is not meantto be limiting, but may include any type of file path, file, folder,document, media file, stored item, information object, links, lists,and/or other storage elements regardless of the physical location oftheir source.

In particular, the method includes, inter alia, receiving auser-initiated operation to launch a library. Typically, the librarycomprises a framework for contemporaneously accessing the resources ofthe one or more targeted locations within a scope of the library. Uponlaunching the library, representations of these resources may besurfaced at a UI display. When a user-initiated action is applied to oneof the surfaced representations, the properties of each of the resourcesresiding at the one or more targeted locations within the scope of thelibrary are automatically manipulated, in accordance with theuser-initiated action. These resources may be stored, at leasttemporarily, consistently with the manipulated properties.

Generally, storing the resources includes updating alibrary-configuration state that reflects how the resources are affectedupon manipulating the properties thereof. Accordingly, when the scope ofthe library is extended to encompass a subject resource residing withinan untargeted location, the properties of the subject resource areautomatically manipulating to align with the library-configurationstate, wherein the library-configuration state of the subject resourceis consistent with a latest manipulation applied to the resourcesoriginally provided within the scope of the library. Upon manipulatingthe properties of the resources, a notice that exposes the updatedlibrary-configuration state of the resources may be published.

In another embodiment, aspects of the present invention involve acomputerized method, implemented at a computing device, forcontemporaneously adjusting interactive rights of one or more resources.Initially, the method includes detecting a single user-initiatedoperation applied to a representation of an item. Typically, the itemincludes a location or the one or more resources residing at thelocation that is encompassed within a scope of a library. The librarygenerally comprises a framework for contemporaneously accessing andacting on the one or more scoped resources. Further, the method mayinclude, inter alia, the following steps, in now particular order:employing the framework of the library to identify system paths to eachof the scoped resources; based on the system paths, filtering fromconsideration as candidates for adjustment the scoped resources thatreside at remote locations; and contemporaneously adjusting theinteractive rights of the candidate scoped resources. Alibrary-configuration state that articulates the adjusted interactiverights of the scoped resources may be generated. Thislibrary-configuration state is often published to a network. Inaddition, a status of the shared scoped resources is communicated to aset of users whose interactive rights to the scoped resources areadjusted.

In yet another embodiment, the present invention encompasses a computersystem embodied on one or more computer storage-media havingcomputer-executable instructions provided thereon for performing amethod for simultaneously manipulating interactive rights of one or moreresources residing at a plurality of locations targeted by a library.Initially, the computer system includes, inter alia, the plurality oftarget locations on which the one or more resources reside and aprocessor component. Typically, at least one of the target locations ismapped to local physical location and at least one of the targetlocations is mapped to a remote physical location.

The processor component, which accommodates an operating system forcontemporaneously accessing the resources being accessed by the library,includes a sharing engine, a data store, a translation component, and anoperation component. The sharing engine executes a handler scheme forcalling the plurality of target locations within a scope of the libraryupon launching the library. Generally, the launch of the library isinvoked by a single user-initiated operation applied to a representationof the library at a UI display. The data store receives the calls fromthe handler scheme, interprets the calls to identify the plurality oftarget locations at the local physical location that are identifiedthereby, and generates a manifest of system paths. In embodiments, thesystem paths point to the resources residing within the identifiedplurality of target locations.

The translation component receives the calls from the handler scheme,interprets the calls to identify the plurality of target locations atthe remote physical location that are identified thereby, and translatesa list of the one or more resources residing at the identified pluralityof target locations into the manifest of system paths. In response to auser-initiated operation applied to the library, the operation componentsimultaneously manipulates the interactive rights of the resources bytracing the system paths thereto. In embodiments, the operating systemfurther includes a filtration component that filters the system pathsfrom the manifest upon ascertaining that the plurality of targetlocations is currently unavailable to the sharing engine. Generally, thefiltered system paths point to resources residing at the unavailabletarget locations.

In embodiments, the present invention facilitates sharing multiplelocations through a pre-established vehicle for contemporaneouslyaccessing multiple locations. In one instance the vehicle is a library.As used herein, the term “library” is not meant to be limiting and mayencompass any destinations in which a user may find and/or organize dataas a collection of items. Advantageously, the collection of items, orresources that comprise content, may span multiple locations. In oneinstance, a library may ostensibly function as folder that providesaccess to many resources. However, unlike a folder, the library providesone-click access to resources in various folders, or locations, onvarious platforms.

In an exemplary embodiment, the library is configured to provide accessto locations within a scope of that particular library. These scopedlocations may be local or remote, and may be automatically assembled byan operating system, or may be manually established and managed by auser or administrator. Manually establishing the scoped locations mayinclude discovering one or more locations (e.g., federated sources ornon-federated devices), ascertaining that the locations are relevant tothe library, and selecting the locations for addition to the library.Based on modifications to resources within the scoped and non-scopedlocations, the library may be managed by removing or adding locations tomaintain a useful collection of items. Accordingly, although a user'svaried storage patterns may have resulted in the creation of dispersedfiles and folders, the libraries allow a user to consolidate access tothese entities via a robust interface.

In particular, the interface may be provided in the form of a top view.The top view, or navigation pane, typically enumerates a selection ofthe resources within the library's scoped locations. The order andhierarchical level of the selected resources that are initially exposedmay be determined by an underlying configuration of the library or byuser preferences. In an exemplary embodiment, the configuration of theexposed resources substantially simulates conventional arrangements offiles and folders presented at a UI display. Thus, libraries facilitateworking across multiple locations (e.g., locations beyond a localpersonal computer) within a single view.

For instance, let there be a sales representative who is searching for asales report within various files on disparate computing devices (e.g.,across the internet, the corporate intranet, on the local PC, and thelike) or on separate platforms within a single computing device.Launching a library that encompasses sales information for thatparticular sales representative may expose an aggregation of the variousfiles that may potentially include the sales report. If an indication ofthe sales report is not surfaced upon initially launching the library,the sales representative may navigate through a file hierarchy of thelibrary, or perform a library-wide search. The library-wide searchtypically accesses each of the files within the scope of the library andsearches each for the sales report, assuming arguendo that the computingdevices, and the data stores therein, are in communication with asharing engine supporting the library. Accordingly, the single vieweffectively dissolves the location boundaries of where data is stored,and enables a user to work with items in the library in a logical andnatural way.

Although various different configurations of the library have beendescribed (e.g., an aggregation of resources across scoped locations),it should be understood and appreciated by those of ordinary skill inthe art that other types of vehicles that provide suitable “collectionsof items” may be used, and that embodiments of the present invention arenot limited to those library architectures described herein. By way ofexample, collections of items may be consolidated by, and mapped to, aset of search-based query results, a list of favorite destinations, andthe like. These vehicles may provide simultaneous access to files thattraverse multiple devices/memory locations, and, for the purposes ofdiscussion are considered embodiments of libraries.

Having briefly described an overview of embodiments of the presentinvention and some of the features therein, an exemplary operatingenvironment suitable for implementing the present invention is describedbelow.

Referring to the drawings in general, and initially to FIG. 1 inparticular, an exemplary operating environment for implementingembodiments of the present invention is shown and designated generallyas computing device 100. Computing device 100 is but one example of asuitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the computing device 100 be interpreted as having anydependency or requirement relating to any one or combination ofcomponents illustrated.

The invention may be described in the general context of computer codeor machine-useable instructions, including computer-executableinstructions such as program components, being executed by a computer orother machine, such as a personal data assistant or other handhelddevice. Generally, program components including routines, programs,objects, components, data structures, and the like, refer to code thatperforms particular tasks or implements particular abstract data types.Embodiments of the present invention may be practiced in a variety ofsystem configurations, including handheld devices, consumer electronics,general-purpose computers, specialty computing devices, etc. Embodimentsof the invention may also be practiced in distributed computingenvironments where tasks are performed by remote-processing devices thatare linked through a communications network.

With continued reference to FIG. 1, computing device 100 includes a bus110 that directly or indirectly couples the following devices: memory112, one or more processors 114, one or more presentation components116, input/output (I/O) ports 118, I/O components 120, and anillustrative power supply 122. Bus 110 represents what may be one ormore busses (such as an address bus, data bus, or combination thereof).Although the various blocks of FIG. 1 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clearand, metaphorically, the lines would more accurately be grey and fuzzy.For example, one may consider a presentation component such as a displaydevice to be an I/O component. Also, processors have memory. Theinventors hereof recognize that such is the nature of the art andreiterate that the diagram of FIG. 1 is merely illustrative of anexemplary computing device that can be used in connection with one ormore embodiments of the present invention. Distinction is not madebetween such categories as “workstation,” “server,” “laptop,” “handhelddevice,” etc., as all are contemplated within the scope of FIG. 1 andreference to “computer” or “computing device.”

Computing device 100 typically includes a variety of computer-readablemedia. By way of example, and not limitation, computer-readable mediamay comprise Random Access Memory (RAM); Read Only Memory (ROM);Electronically Erasable Programmable Read Only Memory (EEPROM); flashmemory or other memory technologies; CDROM, digital versatile disks(DVDs) or other optical or holographic media; magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices;or any other medium that can be used to encode desired information andbe accessed by computing device 100.

Memory 112 includes computer-storage media in the form of volatileand/or nonvolatile memory. The memory may be removable, nonremovable, ora combination thereof. Exemplary hardware devices include solid-statememory, hard drives, optical-disc drives, etc. Computing device 100includes one or more processors that read data from various entitiessuch as memory 112 or I/O components 120. Presentation component(s) 116present data indications to a user or other device. Exemplarypresentation components include a display device, speaker, printingcomponent, vibrating component, etc. I/O ports 118 allow computingdevice 100 to be logically coupled to other devices including I/Ocomponents 120, some of which may be built in. Illustrative componentsinclude a microphone, joystick, game pad, satellite dish, scanner,printer, wireless device, etc.

Turning now to FIG. 2, a schematic diagram of an exemplary systemarchitecture 200 suitable for use in implementing embodiments of thepresent invention is shown, in accordance with an embodiment of thepresent invention It will be understood and appreciated by those ofordinary skill in the art that the exemplary system architecture 200shown in FIG. 2 is merely an example of one suitable computingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the present invention. Neither shouldthe exemplary system architecture 200 be interpreted as having anydependency or requirement related to any single component or combinationof components illustrated therein.

Further, logic within the operating system 220 supporting the exemplarysystem architecture 200 may be embodied on an internal processingcomponent 225 to a computing device 215. This logic assists theoperating system 220 in interfacing with local and remote destinationsprovided within a distributed computing environment, such as a remoteserver (e.g., network location 201 or extended location 203), or anycombination thereof. In embodiments of the invention that are practicedin distributed computing environments, logic communication is linkedthrough appropriate connections. These connections may be wired orwireless.

Examples of particular wired embodiments, within the scope of thepresent invention, include USB connections and cable connections.Examples of particular wireless embodiments, within the scope of thepresent invention, include a near-range wireless network andradio-frequency technology. It should be understood and appreciated thatthe designation of “near-range wireless network” is not meant to belimiting, and should be interpreted broadly to include at least thefollowing technologies: negotiated wireless peripheral (NWP) devices;short-range wireless air interference networks (e.g., wireless personalarea network (wPAN), wireless local area network (wLAN), wireless widearea network (wWAN), Bluetooth™, and the like); wireless peer-to-peercommunication (e.g., Ultra Wideband); and any protocol that supportswireless communication of data between devices. Additionally, personsfamiliar with the field of the invention will realize that a near-rangewireless network may be practiced by various data-transfer methods(e.g., satellite transmission, telecommunications network, etc.).Therefore it is emphasized that embodiments of the connections betweenthe computing device 215 and the remote server(s), for instance, are notlimited by the examples described, but embrace a wide variety of methodsof communications.

For instance, the computing device 215 may be operably coupled to anetwork location 201 that employs internet technologies over a network205. In another instance, the computing device 215 may be operablycoupled to an extended location 203 that employs intranet technologiesover a private computer network (e.g., securely sharing part of anorganization's information). In embodiments, these operable connectionsinclude, without limitation, one or more local area networks (LANs)and/or wide area networks (WANs), as more fully discussed above. Suchnetworking environments are commonplace in offices, enterprise-widecomputer networks, intranets, and the Internet.

The network location 201 and the extended location 203 are generallyconfigured to store resources 204 that may be aggregated within acollection of items, discussed above. In various embodiments, thenetwork location 201 and the extended location 203 may be configured tobe searchable for suitable access to the stored resources 204. Forinstance, the network location 201 may be searchable for digital audiofiles (i.e., resources 200) that are included in a collection of itemswithin the scope of the library, from the example above.

It will be understood and appreciated by those of ordinary skill in theart that the resources 200 stored in the network location 201 and theextended location 203 may be configurable and may include anyinformation relevant to the facilitating access thereof. The content andvolume of such resources 200 or information are not intended to limitthe scope of embodiments of the present invention in any way. Further,though illustrated as a single, independent components, the networklocation 201 and the extended location 203 may, in fact, be a remoteserver, a personal computing device (e.g., computing device 100 of FIG.1), a handheld device (e.g., personal digital assistant), a mobiledevice (e.g., laptop computer, cell phone, media player), consumerelectronic device, a plurality of databases, for instance, a databasecluster, portions of which may reside on a computing device 215, anotherexternal computing device (not shown), and/or any combination thereof.

In yet another instance, the operating system 220 of the computingdevice 215 may be operably coupled to a local location 202 via ahardware connection or any other manner of placing internal componentsin communication with each other that is known in the relevant industry.Similar to the locations 201 and 203, the local location 204 is capableof storing, being searchable for, and providing suitable access to, theresources 204 that are added to the scope of the library. By way ofexample, the local location 204 may be a CD drive, a memory store, adatabase integrated with the operating system, a flash drive, expandedmemory, a card, or any other media-storage element that can communicatewith the operating system 220 when in proximity thereof.

Exemplary system architecture 200 includes the computing device 215 for,in part, supporting operation of the processing component 225. Thecomputing device 215 may take the form of various types of computingdevices. By way of example only, the computing device 215 may be apersonal computing device (e.g., computing device 100 of FIG. 1),handheld device (e.g., personal digital assistant), a mobile device(e.g., laptop computer, cell phone, media player), consumer electronicdevice, various servers, and the like. Additionally, the computingdevice 215 may comprise two or more electronic devices configured toshare information therebetween.

In embodiments, as discussed above, the computing device 215 includesthe presentation component 250 and the processing component 225 (e.g.,hardware) with an operating system 220 installed thereon. The computingdevice 215 is configured to render a UI display 251 on the presentationcomponent 250. The presentation component 250, which may be operablycoupled to the processing component 225, may be configured as anydisplay device that is capable of presenting information to a user, suchas a monitor, electronic display panel, touch-screen, liquid crystaldisplay (LCD), plasma screen, one or more light-emitting diodes (LED),incandescent bulbs, a laser, an electroluminescent light source, achemical light, a flexible light wire, and/or fluorescent light, or anyother display type, or may comprise a reflective surface upon which thevisual information is projected. In one exemplary embodiment, the UIdisplay 251 rendered by the presentation component 250 is configured topresent a top view 252 for surfacing a representation of one or more ofthe resources 204 within a scope of the library. In another exemplaryembodiment, the UI display 251 is capable of rendering an indicationwhether sharing the resources 204 with a selected set of users wassuccessful.

The operating system (OS) 220 refers generally to the software thatmanages the sharing of the resources of the processing component andprovides programmers with an interface used to access those resources.In operation, the operating system 220 interprets system data anddetects the user-initiated inputs, and responds by executing suchprocesses as the following, in no particular order: launching a librarythat surfaces representations of the resources 204 at the UI display 251(e.g., rendered within the top view 252), and contemporaneouslymanipulating properties of the resources 204 residing at targetlocations (e.g., the locations 201, 202, and 203). For discussionpurposes, targeted locations, or scoped locations, generally refer tothose locations that are included within the scope of the library. Thatis, the resources 200 stored at the target locations (e.g., one or moreof the locations 201, 202, or 203) are mapped to the collection of itemsencompassed by the library. An untargeted location may be subsequentlyadded to the scope of the library; however, the resources 204 saved tothe untargeted location will likely be automatically manipulated suchthe properties of those resources 204 align with a currentlibrary-configuration state, discussed more fully below.

Further, the resources 204 stored at the targeted locations, which areverified as presently accessible to the operating system 220, aretypically candidates for manipulation upon receiving the user-initiatedaction. In one instance, verifying includes ascertaining whether aframework of the library is operably coupled to one or more of thetarget locations. By way of example, if an intranet connection isfunctional and a CD is inserted at a CD driver, then the resources 204at the extended location 203 and the local location 202, respectively,are accessible and candidates for being concurrently acted upon.

But, the resources 204 stored at the targeted locations, which areidentified as not presently accessible to the operating system 220, arefiltered from being candidates for manipulation upon receiving theuser-initiated action. In one instance, those targeted locations thatare unavailable to, or decoupled from, the framework of the library arefiltered from being considered a candidate for manipulation applied toits contents. In another instance, upon recognizing that auser-initiated action is attempting to invoke a manipulation to theresources 204 within the collection of items, an application programminginterface (API) may return a list of the target locations (e.g., aninventory of disconnected system paths) on which the operating system220 can operate—via appropriate channels. By way of example, if anintranet connection is failing, the computing device 215 is offline fromthe Internet, and a CD is absent from a CD driver, then the resources204 at the extended location 203 (e.g., an internally networkedcomputer), the network location 201 (e.g., a photo sharing website), andthe local location 202, respectively, are filtered from being candidatesof an action triggered from the library.

Although various different configurations of the locations 201, 202, and203 have been described above, it should be understood and appreciatedby those of ordinary skill in the art that other types of suitablecomponents that provide an accessible destination that, at leasttemporarily, retains data may be used, and that embodiments of thepresent invention are not limited to those particular locationsdescribed herein. For instance, the extended location 203 may includepersonal handheld device operable coupled to the computing device via apeer-to-peer wireless connection, while the local location 202 mayinclude a standalone hard-drive that is operably coupled to theoperating system 220 via a Bluetooth™ connection.

In an exemplary embodiment, the operating system 220 is accommodated onthe processing component 225 and supports execution of one or morecomponents for contemporaneously manipulating the resources 204 that areaccessible to the library. With continued reference to FIG. 2, thecomponents include a translation component 230, a sharing engine 235, afiltration component 245, an operation component 250, a presentationcomponent 255, and a data store 260. Initially, the sharing engine 235is generally configured to execute a handler scheme 240 for calling theplurality of target locations within a scope of the library uponlaunching the library. Calling may be invoked automatically in responseto a trigger event (e.g., detecting the user-initiated operation tomanipulate the library), or at periodic intervals (e.g., once a minuteduring regular operation). Typically, the launch of the library isinvoked by a single user-initiated operation applied to a representationof the library at the UI display 251. For instance, the singleuser-initiated operation may be a mouse click applied over an iconicrepresentation of the library revealed on a toolbar, a menu, a desktopworkspace, and the like.

In one embodiment, the handler scheme 240 employs an API to interrogatethe data store 260 to determine the various targeted locations, andresources therein, that are spanned by the library. Generally, the datastore 260 is configured for receiving the calls from the handler scheme240. In embodiments, the data store may include a registry, an XML file,or any other mechanism configured for holding and managing data. Uponrecognizing that a call is received, the data store 260 may interpretthe call(s) to identify one or more target locations at a local physicallocation (e.g., the local location 202) that are identified by thecalls. In an exemplary embodiment, the handler scheme 240 appends alibrary identifier to the calls to facilitate the identification of theappropriate local physical locations. Also, the data store 260 maygenerate a manifest of system paths 270 that relate to the resources 204within the scope of the library. That is, the system paths point to theresources 204 residing within the identified target locations.

The translation component 230 is generally configured for receiving thecalls from the handler scheme 230 and interpreting the calls to identifyone or more target locations at remote physical location(s) (e.g., thenetwork location 201 and/or the extended location 203) that areidentified by the calls. In embodiments, the translation component 230is responsible for translating a list of one or more resources residingat the identified target locations into a manifest of system paths 265.These manifests of system paths 265 and 270 may be retrieved by thehandler scheme 240 and aggregated to a listing of system paths at thesharing engine 235. This aggregated list of system paths allows theoperating system 220 to target the appropriate resources forimplementing contemporaneous manipulation thereto.

A used herein, the phrase “system paths” is not meant to be limiting butmay encompass any format that targets one or more resources. In oneinstance, a system path may include a mapping scheme that locates theresource on a particular device. In another instance, the system pathmay link one or more scoped resources to the library via namespaceidentifiers. By way of example, the namespace identifiers include anabstract container that provides a unique context for navigating to aparticular resource residing at the resources 204 within the library'sscope.

The filtration component is generally configured to filter the systempaths from the manifests 265 and 270 upon ascertaining that one or moreof the target locations is currently unavailable to the sharing engine235. As such, the filtered system paths point to one or more resourcesresiding at unavailable target locations. As discussed above, theunavailable target locations may include remote servers that are, forsome reason, decoupled from the computing device 215. By way of example,the unavailable target locations includes one or more of the following:a secure server protected with user-specific authorization data, a datastore that is disconnected from the operating system, or the remotephysical location that is currently inaccessible.

Accordingly, the available locations may be considered candidates forconcurrently manipulating the resources therein. These “targetedresources” may be accessed by tracing the system paths thereto. In oneembodiment, each of the targeted resources is concurrently manipulatedupon detecting an appropriate user-initiated operation. In otherembodiments, the user may select one or more of the targeted resourcesfor concurrent manipulation from listing of the targeted resources.

The operation component 250 is generally configured for automaticallymanipulating the interactive rights of the resources 204 in substantialconcurrence. Typically the functionality of the operation component 250is initiated by detecting a user-initiated operation applied to thelibrary. In one instance, the user-initiated operation is a selection ata visual representation (e.g., icon or control button) of the librarysurfaced at the UI display 215. In particular embodiments, applying theuser-initiated operation at the representation of the library includesproviding an instruction to alter rights to the resources, and/orproviding a selection of users whose rights, with respect to theresources, are affected upon manipulating the properties of theresources. Generally, selecting a set of users involves picking one ormore users or user-groups from a list. Accordingly, the resources may beshared/unshared with the selected users concurrently by applying theappropriate user-initiated operation to the library. By way of example,the resources may be shared to the selected set of users by insertingexpected identifiers that are associated with each selected user,respectively, within the instruction to alter resource rights.

By way of example, providing an instruction to alter rights to theresources may include employing the sharing engine 235 to perform anaction on the properties of the targeted resources by tracing the systempaths thereto. Further, providing an instruction to alter rights to theresources may include simultaneously manipulating the properties of thetargeted resources such that the targeted resources are shared (e.g.,lifting the protective rights) or unshared (e.g., applying securitymeasures to the resources 204). Further yet, providing an instruction toalter rights to the resources may include contemporaneously performingany other operation on the targeted resources that is known in therelevant field. By way of example only, contemporaneously performingother operations may include, inter alia, the following actions:sharing/unsharing a selection of the resources, backing-up theresources, encrypting the resources, or syncing the resources whenconnected with a suitable device. Typically, the resources are, at leasttemporarily, stored.

In embodiments, library-configuration state is updated to reflect one ormore of these operations performed upon the resources. Generally, thelibrary-configuration state is a storage mechanism that capturesqualities of the resources upon manipulating the properties thereof. Assuch, upon adding a new resource or location to the existing scope ofthe library, the properties of this new item may be aligned with thelibrary-configuration state. For instance, if the operating system 220recognizes that the scope of the library is extended to encompass asubject resource residing within an untargeted location, the propertiesof the newly added subject resource are automatically manipulating toalign with the library-configuration state. By way of example, when thelibrary-configuration state indicates that each of the resources storedat target locations within the scope of the library are currently beingshared to a particular group, then upon entry to the scope of thelibrary, a subject resource may be automatically manipulated such thatit is similarly shared. In another example, when thelibrary-configuration state indicates that each of the resources storedat target locations within the scope of the library are currently markedas private, then upon entry to the scope of the library, a sharedsubject resource may be automatically manipulated such that it is markedas private as well. Conversely, in embodiments, if a constriction of thescope of the library to exclude a subject resource residing within atargeted location is recognized, the properties of the subject resourceare automatically manipulated to align with a restored-configurationstate. In one instance, the restored-configuration state of the subjectresource is influenced by default configuration settings of theoperating system 220.

The presentation component 255 is generally configured for alerting auser that the simultaneous manipulation of the protective rights of theresources is successful or unsuccessful. In embodiments, providing analert of an unsuccessful attempt to manipulate includes surfacing anerror message indicating the unavailable target locations. The issuingof notifications is discussed more fully below with reference to FIGS. 9and 10. In instances, the presentation component 255 may be responsiblefor surfacing the top view 252 at the UI display 251, as depicted bycommunication 275. Also, in instances, the presentation component 255may communicate a status of rights, with respect to the manipulatedresources, to the selected set of users who are affected by themanipulation.

With reference to FIG. 2, this exemplary system architecture 200 is butone example of a suitable environment that may be implemented to carryout aspects of the present invention and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the illustrated exemplary system architecture 200 beinterpreted as having any dependency or requirement relating to any oneor combination of the components 230, 235, 245, 250, 255, and 260 asillustrated. In some embodiments, one or more of the components 230,235, 245, 250, 255, and 260 may be implemented as stand-alone devices.In other embodiments, one or more of the components 230, 235, 245, 250,255, and 260 may be integrated directly into the operating system 220,and thus not distinct therefrom. It will be understood by those ofordinary skill in the art that the components 230, 235, 245, 250, 255,and 260 illustrated in FIG. 2 are exemplary in nature and in number andshould not be construed as limiting.

Accordingly, any number of components may be employed to achieve thedesired functionality within the scope of embodiments of the presentinvention. Although the various components of FIG. 2 are shown withlines for the sake of clarity, in reality, delineating variouscomponents/elements is not so clear, and metaphorically, the lines wouldmore accurately be grey or fuzzy. Further, although some components anddevices of FIG. 2 are depicted as single blocks, the depictions areexemplary in nature and in number and are not to be construed aslimiting (e.g., although only one presentation component 255 is shown,many more may be operably coupled to the computing device 215, therebyfunctioning in conjunction to present the UI display 215).

Exemplary processes for contemporaneously manipulating resources withinthe scope of the library will now be described with reference to FIGS. 3and 4. Initially, FIG. 3 is a flow diagram that illustrates an overallmethod 300 for automatically manipulating properties of resourcesresiding at one or more locations targeted by a library, in accordancewith an embodiment of the present invention. As depicted at block 305 auser-initiated operation to launch a library is received. As discussedabove, in embodiments, the library includes a framework forcontemporaneously accessing the resources of the one or more targetedlocations within a scope of the library. In one instance of theframework, a shell-link is provided that points to various resources ontargeted locations. The shell-link may be partially based on a list ofsystem paths for the resources within the library's scope, which aretypically gathered by the handler scheme 240 of FIG. 2.

In one instance, receiving the user-initiated action applied at thesurfaced representation includes, at least, the following steps:detecting an instruction to alter rights to the resources (see block310), and detecting a selection of users, whose rights with respect tothe resources are affected upon implementing the manipulation to theproperties of the resources. Further, as discussed above, theuser-initiated operation may be applied to a representation of thelibrary, via a menu, or a representation of an item (e.g., an icondescribing a resource, a location, a file, a document, a folder, and thelike) in the collection of the library. As such, one, a selection, orall of the resources within the scope of the library may be indicatedfor having the manipulation applied thereto.

Incident to launching the library, representations of the resources aresurfaced at a UI display, as indicated at block 320. In embodiments,surfacing representations of the resources at a UI display (e.g., the UIdisplay 251 rendered at the presentation device 250 of FIG. 2) includes,inter alia, rendering a collective view of the resources in ahierarchical format. By way of example, the hierarchical format isintuitively navigable to discover an individual resource stored at aparticular targeted location. Accordingly, the hierarchical format issearchable for the individual resources by exploring content associatedwith the resources within the scope of the library.

As indicated at block 325, the method 300 may further include verifyingthat framework of the library is operably coupled to each of the targetlocations. In embodiments, verifying that framework of the library isoperably coupled to the target locations includes, in no particularorder, identifying as unavailable the resources that reside at targetedlocations that are decoupled from the framework (see block 330), andfiltering the identified resources from being considered a candidate forautomatic manipulation (see block 335).

A user-initiated action applied to one of the surfaced representationsmay be received. In accordance with the user-initiated action, theproperties of each of the resources residing at the targeted locations,within the scope of the library, are automatically manipulated, asindicated at block 340. In instances, automatically manipulating theproperties of each of the resources includes, but is not limited to, thefollowing steps: interrogating the targeted locations within the scopeof the library to identify system paths to each of the resourcesresiding therein (see block 345), and concurrently acting on theproperties of the resources by tracing the system paths thereto (seeblock 350). Also, in instances, automatically manipulating theproperties of each of the resources may include performing at least oneof the following operations: sharing the resources, regularly backing-upthe resources, encrypting the resources, or syncing the resources upondetecting a connection with a suitable device. In an exemplaryembodiment, a library-configuration state is updated to reflect theseoperations performed upon the resources, as indicated at block 355.

The resources may be stored consistently with the manipulatedproperties, as indicated at block 360. In embodiments, storing theresources consistent with the manipulated properties includes updatingthe library-configuration state. As discussed above, the libraryconfiguration state captures qualities of the resources uponmanipulating the properties thereof. As indicated at block 365, anextension of the scope of the library to encompass a subject resourceresiding within an untargeted location may be recognized. Incident torecognizing an entry of the subject resource, the properties of thesubject resource are automatically manipulating to align with thelibrary-configuration state, as indicated at block 370. Accordingly, thelibrary-configuration state of the subject resource is consistent with alatest manipulation applied to the resources originally provided withinthe scope of the library. As indicated at block 375, a notice ispublished that exposes the updated library-configuration state of theresources upon manipulating the properties thereof. In addition, anindication of whether the manipulation is successfully applied to theproperties of each of the resources may be surfaced.

Turning to FIG. 4, a flow diagram that illustrates an overall method 400for contemporaneously adjusting interactive rights of one or moreresources is shown, in accordance with an embodiment of the presentinvention. Initially, a single user-initiated operation applied to arepresentation of an item is detected, as indicated at block 410.Generally, the item includes a location or the resources residing at thelocation that is encompassed within a scope of a library. As discussedabove, the library comprises a framework for contemporaneously accessingand acting on the scoped resources. As indicated at block 420, theframework of the library is employed to identify system paths to each ofthe scoped resources. Based on the system paths, the scoped resourcesthat reside at remote locations are filtered from consideration ascandidates for adjustment, as indicated a block 430. As indicated atblock 440, the interactive rights of the candidate scoped resources arecontemporaneously adjusted (e.g., sharing or unsharing the resources). Alibrary-configuration state that articulates the adjusted interactiverights of the scoped resources may be generated. In embodiments, thelibrary-configuration state to may be published to a network, asindicated at block 460. Further, as indicated at block 470, a status ofthe shared scoped resources may be communicated to the set of userswhose interactive rights to the scoped resources are adjusted.

With reference to FIGS. 5-10, illustrative screen displays of exemplaryuser interfaces for accessing a library and surfacing a representationof the collection of items within the library are shown, in accordancewith an embodiment of the present invention. Initially, with referenceto FIG. 5, an illustrative screen display 500 depicts a menu window 510(e.g., a start menu) that includes a plurality of selectable links 520.Applying a user-initiated action 530 (e.g., a single mouse click) on theselectable links 520 may invoke the operating system to launch a libraryidentified by the user-initiated action 530. Although a particularconfiguration of the selectable links 520 has been described, it shouldbe understood and appreciated by those of ordinary skill in the art thatother types of suitable configurations (e.g., control buttons,selectable portions of a toolbar, drop-down menu) that induce launchinga library may be used, and that embodiments of the present invention arenot limited to the configuration described herein.

Turning to FIG. 6, an illustrative screen display 600 depicts a top view610 (e.g., the top view 252 surfaced at the user-interface 251 of FIG.2) that exposes a collection of items within a pictures library 615. Inparticular, the collection of items includes locations 611, 612, and 513that are targeted by the pictures library 615. In one of the targetedlocations 611, which is a local location on a hard drive within thescope of the pictures library 615, resources 620 (e.g., digital imagefiles) residing at that location 611 are exposed by renderingrepresentations thereof. These representations may include an icon, analphanumeric label, a top-level menu, or any other manner of indicatinga resource to user know in the relevant field.

With reference to FIG. 7, an illustrative screen display 700 depicts adisplay area 710, or window, that includes a listing of libraries 720.As shown, the pictures library 615 of FIG. 6 is selected for performinga manipulation thereto. The selection is conducted by way of auser-initiated operation 730, as discussed above. Accordingly, theuser-initiated operation 730 may be applied to a representation of aresource (e.g., see FIG. 6 at reference numeral 620) or to arepresentation of a library, such as the picture library 615. Based onwhich representation is selected, one, a group, or all of the resourceswithin the picture library 615 may be contemporaneously manipulated.

Turning to FIG. 8, an illustrative screen display 800 depicts a displayarea 710, or window, that includes a listing of libraries. Inembodiments of the user-initiated operation 730, set of users 820 may beselected. Typically, the rights of the selected set of users may bealtered upon contemporaneously manipulating the resources within thescope of the pictures library. By way of example, specific users may beidentified and aggregated into a set of users, who will gain rights tothe digital image files within the scope of the pictures library, aspart of the user-initiated operation.

Turning now to FIG. 9, an illustrative screen display 900 depicts anindication 910, or window, that alerts a user whether the resourcesselected for sharing, unsharing, or any other type of manipulation, weresuccessfully contemporaneously manipulated. As shown, a targetedlocation 920 that has digital image files stored thereon is identifiedas not being available for sharing. The target location may beunavailable for a variety of reasons, as discussed above, includingbeing operably decoupled from the operating system. If the manipulationis successful, a indication 1010 is surfaced alerting a user that theselected resources are shared, unshared, or otherwise acted on in acontemporaneous manner. This indication 1010 is depicted at anillustrative screen display 1000 of FIG. 10. In embodiments, theindication includes a message that communications each of the targetedlocations 611, 612, and 613 that affected by the manipulation.

The present invention has been described in relation to particularembodiments, which are intended in all respects to be illustrativerather than restrictive. Alternative embodiments will become apparent tothose of ordinary skill-in-the-art to which the present inventionpertains without departing from its scope.

From the foregoing, it will be seen that this invention is one welladapted to attain all the ends and objects set forth above, togetherwith other advantages which are obvious and inherent to the system andmethod. It will be understood that certain features and sub-combinationsare of utility and may be employed without reference to other featuresand sub-combinations. This is contemplated by and is within the scope ofthe claims.

1. One or more computer-readable media having computer-executableinstructions embodied thereon that, when executed, perform a method forautomatically manipulating properties of resources residing at one ormore locations targeted by a library, the method comprising: receiving auser-initiated operation to launch a library, wherein the librarycomprises a framework for contemporaneously accessing the resources ofthe one or more targeted locations within a scope of the library;incident to launching the library, surfacing representations of theresources at a UI display; receiving a user-initiated action applied toone of the surfaced representations; in accordance with theuser-initiated action, automatically manipulating the properties of eachof the resources residing at the one or more targeted locations withinthe scope of the library; at least temporarily storing the resourcesconsistent with the manipulated properties, wherein storing comprisesupdating a library-configuration state that captures qualities of theresources upon manipulating the properties thereof; recognizing anextension of the scope of the library to encompass a subject resourceresiding within an untargeted location; and incident to recognizing anentry of the subject resource, automatically manipulating properties ofthe subject resource to align with the library-configuration state,wherein the library-configuration state of the subject resource isconsistent with a latest manipulation applied to the resourcesoriginally provided within the scope of the library.
 2. The one or morecomputer-readable media of claim 1, wherein the method furthercomprising: recognizing a constriction of the scope of the library toexclude a subject resource residing within a targeted location of theone or more targeted locations; and incident to recognizing a withdrawalof the subject resource, automatically manipulating properties of thesubject resource to align with a restored-configuration state, whereinthe restored-configuration state of the subject resource is influencedby default configuration settings of an operating system.
 3. The one ormore computer-readable media of claim 1, wherein the method furthercomprises publishing a notice to a network that exposes the updatedlibrary-configuration state of the resources upon manipulating theproperties thereof.
 4. The one or more computer-readable media of claim1, wherein receiving a user-initiated action applied at the surfacedrepresentation comprises: detecting an instruction to alter rights tothe resources; and detecting a selection of users whose rights withrespect to the resources are affected upon implementing the manipulationto the properties of the resources.
 5. The one or more computer-readablemedia of claim 1, wherein surfacing representations of the resources ata UI display comprises rendering a collective view of the resources in ahierarchical format, wherein the hierarchical format is intuitivelynavigable for an individual resource stored at a particular targetedlocation of the one or more target locations, and wherein thehierarchical format is searchable for the individual resources byexploring content associated with the resources within the scope of thelibrary.
 6. The one or more computer-readable media of claim 1, whereinthe method further comprises verifying that framework of the library isoperably coupled to each of the one or more target locations.
 7. The oneor more computer-readable media of claim 6, wherein verifying thatframework of the library is operably coupled to each of the one or moretarget locations comprises: identifying as unavailable the resourcesthat reside at targeted locations, of the one or more target locations,that are decoupled from the framework, and filtering the identifiedresources from being considered a candidate for automatic manipulation.8. The one or more computer-readable media of claim 1, whereinautomatically manipulating the properties of each of the resourcescomprises: interrogating the one or more targeted locations within thescope of the library to identify system paths to each of the resourcesresiding therein; and concurrently acting on the properties of theresources by tracing the system paths thereto.
 9. The one or morecomputer-readable media of claim 1, wherein the method further comprisessurfacing an indication of whether the manipulation is successfullyapplied to the properties of each of the one or more resources.
 10. Theone or more computer-readable media of claim 1, wherein automaticallymanipulating the properties of each of the resources comprises:performing at least one of the following operations: sharing theresources, regularly backing-up the resources, encrypting the resources,or syncing the resources upon detecting a connection with a suitabledevice; and updating a library-configuration state to reflect theoperations performed upon the resources.
 11. One or morecomputer-readable media having computer-executable instructions embodiedthereon that, when executed, perform a method for automaticallymanipulating properties of resources residing at one or more locationstargeted by a library, the method comprising: receiving a user-initiatedoperation to launch a library, wherein the library comprises a frameworkfor contemporaneously accessing the resources of the one or moretargeted locations within a scope of the library; incident to launchingthe library, surfacing representations of the resources at a UI display;receiving a user-initiated action applied to one of the surfacedrepresentations; in accordance with the user-initiated action,automatically manipulating the properties of each of the resourcesresiding at the one or more targeted locations within the scope of thelibrary; at least temporarily storing the resources consistent with themanipulated properties, wherein storing comprises updating alibrary-configuration state that captures qualities of the resourcesupon manipulating the properties thereof; recognizing a constriction ofthe scope of the library to exclude a subject resource residing within atargeted location of the one or more targeted locations; and incident torecognizing a withdrawal of the subject resource, automaticallymanipulating properties of the subject resource to align with arestored-configuration state, wherein the restored-configuration stateof the subject resource is influenced by default configuration settingsof an operating system.
 12. The one or more computer-readable media ofclaim 11, wherein the method further comprises publishing a notice to anetwork that exposes the updated library-configuration state of theresources upon manipulating the properties thereof.
 13. The one or morecomputer-readable media of claim 11, wherein receiving a user-initiatedaction applied at the surfaced representation comprises: detecting aninstruction to alter rights to the resources; and detecting a selectionof users whose rights with respect to the resources are affected uponimplementing the manipulation to the properties of the resources. 14.The one or more computer-readable media of claim 11, wherein surfacingrepresentations of the resources at a UI display comprises rendering acollective view of the resources in a hierarchical format, wherein thehierarchical format is intuitively navigable for an individual resourcestored at a particular targeted location of the one or more targetlocations, and wherein the hierarchical format is searchable for theindividual resources by exploring content associated with the resourceswithin the scope of the library.
 15. The one or more computer-readablemedia of claim 11, wherein the method further comprises verifying thatframework of the library is operably coupled to each of the one or moretarget locations.
 16. The one or more computer-readable media of claim15, wherein verifying that framework of the library is operably coupledto each of the one or more target locations comprises: identifying asunavailable the resources that reside at targeted locations, of the oneor more target locations, that are decoupled from the framework, andfiltering the identified resources from being considered a candidate forautomatic manipulation.
 17. The one or more computer-readable media ofclaim 11, wherein automatically manipulating the properties of each ofthe resources comprises: interrogating the one or more targetedlocations within the scope of the library to identify system paths toeach of the resources residing therein; and concurrently acting on theproperties of the resources by tracing the system paths thereto.
 18. Theone or more computer-readable media of claim 11, wherein the methodfurther comprises surfacing an indication of whether the manipulation issuccessfully applied to the properties of each of the one or moreresources.
 19. The one or more computer-readable media of claim 11,wherein automatically manipulating the properties of each of theresources comprises: performing at least one of the followingoperations: sharing the resources, regularly backing-up the resources,encrypting the resources, or syncing the resources upon detecting aconnection with a suitable device; and updating a library-configurationstate to reflect the operations performed upon the resources.